//加载初始提示样式
$('.emailRegister div+span').attr('style','font-size: 12px; margin-left: 10px; color:red; display:none;');
//邮箱框失去焦点时的判断
$('#email').blur(function () {
	//正则验证
	var bool = checkEmail($(this));

	if (!bool) {
		return false;
	}

	//邮箱是否已被注册
	isExists($(this), 'email', '邮箱已被注册');
});

//密码输入框的验证
$('.emailPassword').blur(function () {
	checkPassword($(this));
});

//确认密码框失去焦点时匹配两次密码是否一致
$('.emailRePassword').blur(function () {
	matchingPassword($('.emailPassword'),$(this));
});

//邮箱注册表单提交时判断
$('.emailRegister').submit(function () {
	//判断邮箱
	var bool = checkEmail($('#email'));
	if (!bool) {
		return false;
	}
	//判断邮箱是否被注册
	bool = isExists($('#email'), 'email', '邮箱已被注册');
	if (!bool) {
		return false;
	}
	//判断密码
	bool = checkPassword($('.emailPassword'));
	if (!bool) {
		return false;
	}
	bool = matchingPassword($('.emailRePassword'), $('.emailPassword'));
	if (!bool) {
		return false;
	}
});


//点击获取验证码按钮时的判断
$('.getCode').click(function () {
	//判读邮箱是否为空
	var bool = checkEmail($('#email'));
	if (!bool) {
		return false;
	}
	//当按钮的html不是获取验证码时，不给执行下去
	if ($(this).attr('des') !== '1') {
		return false;
	}
	//ajax的地址
	var url = 'mail';
	//获取邮箱
	var sendEmail = $('#email').val();

	var Content=""; 
	for(var i=0;i<6;i++) 
	{ 
		Content+=Math.floor(Math.random()*10); 
	} 
	var that = $(this);
	$.ajax({
		type: 'get',
		url: url,
		data: {
			email: sendEmail,
			content: Content,
		},
		dataType: 'json',
		success: function (data) {
			if (data.code != '1') {
				alert('请填写邮箱');
			}
		}
	});

	countDown($(this), 75, 1000);
});


/**
 * 倒计时
 * @param  {[obj]} obj         [设置倒计时的对象]
 * @param  {[num]} num         [倒计时多久]
 * @param  {[num]} Millisecond [多久倒计时一次,单位：毫秒]
 * @return {[null]}
 */
function countDown(obj,num,Millisecond) 
{
	obj.html(num+'秒后可重新获取');
	obj.attr('des', '2');
	var id = setInterval(function () {
		--num;
		obj.html(num+'秒后可重新获取');
		if (num == 0) {
			obj.html('获取验证码');
			obj.attr('des', '1');
			clearInterval(id);
		}
	},Millisecond);
}
/**
 * 正则验证邮箱格式
 * @param  {[obj]} obj [输入邮箱的input框]
 * @return {[bool]}     [格式正确返回true否则返回false]
 */
function checkEmail(obj)
{
	var reg = new RegExp("^[a-z0-9]+([._\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$");
	//正则匹配
	if (!reg.test(obj.val())) {
		//匹配失败
		obj.parent().next('span').show();
		//判断obj是否有值
		if (obj.val()) {
			obj.parent().next('span').html('邮箱格式不正确');
		} else {
			obj.parent().next('span').html('请填写邮箱');
		}
		return false;
	} else {
		//匹配成功
		obj.parent().next('span').html('');
		obj.parent().next('span').hide();
	}
	return true;
}

/**
 * [密码验证]
 * @param  {[obj]} obj [一个密码框对象]
 * @return {[bool]}     [格式正确返回true否则返回false]
 */
function checkPassword(obj)
{
	var reg = new RegExp("^[%$#0-9a-zA-Z.*-^]{8,16}$");
	//正则匹配
	if (!reg.test(obj.val())) {
		//匹配失败
		obj.parent().next('span').show();
		//判断obj是否有值
		if (!obj.val()) {
			obj.parent().next('span').html('请设置密码');
		} else {
			obj.parent().next('span').html('密码只能由8-16位字母、数字、.*-^%$#组成');
		}
		return false;
	} else {
		//匹配成功
		obj.parent().next('span').html('');
		obj.parent().next('span').hide();
	}
	return true;
}

/**
 * [匹配两次的密码是否一致]
 * @param  {[obj]} obj   [一个密码框对象]
 * @param  {[obj]} reobj [一个密码框对象]
 * @return {[bool]}       [匹配一致返回true否则返回false]
 */
function matchingPassword(obj, reobj)
{
	//判断是否一致
	if (obj.val() == reobj.val()) {
		//一致
		reobj.parent().next('span').html('');
		reobj.parent().next('span').hide();
		return true;
	}
	//不一致
	if (!obj.val()) {
		obj.parent().next('span').show();
		obj.parent().next('span').html('请设置密码');
	} else {
		reobj.parent().next('span').show();
		if (!reobj.val()) {
			reobj.parent().next('span').html('请确认密码');
		} else {
			reobj.parent().next('span').html('两次密码不一致');
		}
	}
	return false;
}
/**
 * [ajax判断账户是否已被注册]
 * @param  {[obj]}  obj    [表单标签对象]
 * @param  {[string]}  field  [要验证的字段]
 * @param  {[string]}  prompt [提示]
 * @return {Boolean}        [description]
 */
function isExists(obj, field, prompt) {
	var str = obj.val();
	var bool = true;
	$.ajax({
		type: 'get',
		url: 'MemberisExists',
		data: {
			str: str,
			field: field, 
		},
		dataType: 'json',
		success: function (data) {
			if (data.code == 2) {
				obj.parent().next('span').hide();
				obj.parent().next('span').html('');
			} else {
				obj.parent().next('span').show();
				obj.parent().next('span').html(prompt);
				bool = false;
			}
		}
	});
	return bool;
}